Comment envoyer des e-mails sous Linux via la ligne de commande avec Sendmail et Mailx
Pour les administrateurs système ou ceux qui travaillent sur des tâches d’automatisation, savoir envoyer des e-mails depuis le terminal Linux est essentiel. Cela offre un contrôle total sur les fonctions de messagerie et évite d’avoir recours à des programmes complexes. C’est particulièrement utile lorsque la rapidité et la simplicité sont prioritaires.
Des outils courants tels que sendmail et mailx sont fréquemment utilisés pour envoyer des messages, vérifier les paramètres SMTP, automatiser des alertes ou s’intégrer dans des scripts. Ils sont simples mais efficaces — parfaits pour informer une équipe des mises à jour du serveur, automatiser des rapports ou tester des configurations e-mail.
Ce guide s’adresse aux utilisateurs souhaitant gérer leurs e-mails directement depuis le terminal. Il couvre l’installation des outils essentiels ainsi que des tâches plus avancées, comme l’envoi de pièces jointes et la configuration des utilitaires de messagerie.
Pourquoi choisir des outils de messagerie en ligne de commande ? Copier le lien
Les deux outils les plus utilisés — sendmail et mailx — sont des solutions fiables pour l’envoi d’e-mails sous Linux et présentent plusieurs avantages :
Efficacité Copier le lien
Les logiciels de messagerie traditionnels peuvent être lents et gourmands en ressources. Ces outils permettent un envoi rapide et léger directement depuis la ligne de commande.
Automatisation Copier le lien
Ils s’intègrent parfaitement avec les scripts shell, les tâches cron et les outils de supervision. Vous pouvez automatiser des notifications ou alertes répétitives.
Dépannage des problèmes SMTP Copier le lien
Ils simplifient la détection des erreurs et la consultation des journaux de messagerie, ce qui facilite le diagnostic des configurations SMTP.
Flexibilité Copier le lien
Que ce soit pour envoyer une alerte ou générer un rapport automatique, sendmail et mailx offrent une grande polyvalence.
Prérequis Copier le lien
Avant d’utiliser ces outils de messagerie Linux, assurez-vous de disposer :
-
D’un accès au terminal : dans certains cas, des droits root sont nécessaires.
-
D’un serveur SMTP : indispensable pour tester l’envoi d'e-mails.
-
Des utilitaires installés : vérifiez que sendmail et mailx sont présents et fonctionnels.
Configurer un serveur SMTP Copier le lien
Les serveurs SMTP sont indispensables pour envoyer des messages. Ils se répartissent en deux catégories :
-
Serveurs SMTP externes
-
Serveurs SMTP locaux
Serveurs SMTP externes Copier le lien
Ils sont hébergés par un fournisseur tiers. Leur rôle est d’envoyer des e-mails à des destinataires extérieurs à votre réseau. Ils garantissent :
-
une livraison mondiale,
-
l’authentification,
-
la cryptographie,
-
la prévention du spam.
Exemples Copier le lien
Gmail
-
Adresse : smtp.gmail.com
-
Port : 587 (TLS) ou 465 (SSL)
Outlook
-
Adresse : smtp.office365.com
-
Port : 587
Ils nécessitent une authentification (login, mot de passe ou mots de passe d’application) et une connexion sécurisée (TLS/SSL).
Note : Nous avons déjà fourni un guide pour configurer un serveur SMTP externe. La commande d'envoi via Postfix reste identique : il suffit d’adapter les identifiants SMTP et de remplacer l’adresse e-mail par celle du fournisseur choisi.
Serveurs SMTP locaux Copier le lien
Ils fonctionnent uniquement dans un réseau interne. Idéals pour :
-
envoyer des e-mails entre utilisateurs locaux (tom@office.local → jerry@office.local),
-
les tests et le développement,
-
la communication interne,
-
les environnements sans connexion Internet.
Configuration d’un serveur SMTP local Copier le lien
1. Installer Postfix Copier le lien
sudo apt install postfix
2. Modifier la configuration Copier le lien
sudo nano /etc/postfix/main.cf
Paramètres à vérifier :
myhostname = mail.office.local
mydomain = office.local
myorigin = $mydomain
inet_interfaces = loopback-only
local_recipient_maps = proxy:unix:passwd.byname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Redémarrer Postfix :
sudo systemctl restart postfix
3. Créer des comptes utilisateurs Copier le lien
sudo adduser linux
sudo adduser hostman
Ce qui génère des adresses comme linux@office.local.
Présentation de sendmail Copier le lien
sendmail est un agent de transfert de courrier (MTA) très répandu sous Linux. Il fonctionne avec des serveurs SMTP et permet d’envoyer des e-mails depuis des scripts ou des systèmes locaux.
Installer sendmail Copier le lien
Debian/Ubuntu Copier le lien
sudo apt install sendmail
CentOS/Red Hat Copier le lien
sudo yum install sendmail
Démarrer et activer sendmail Copier le lien
sudo systemctl start sendmail
sudo systemctl enable sendmail
Tester sendmail Copier le lien
echo "Testing sendmail setup" | sendmail -v your-email@example.com
Vérifier les e-mails reçus :
mail
Installer mailutils si nécessaire :
sudo apt install mailutils
Ou consulter :
cat /var/mail/user
Configurer sendmail Copier le lien
sudo nano /etc/mail/sendmail.mc
Exemple : définir le domaine :
define(`confDOMAIN_NAME', `your_domain.com')dnl
Regénérer la configuration :
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Si une erreur de permission survient :
sudo sh -c "m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf"
Redémarrer :
sudo systemctl restart sendmail
Envoyer un e-mail avec sendmail Copier le lien
1. Créer un fichier Copier le lien
nano email.txt
Contenu :
Subject: Test Email from Hostman
This is a test email sent using sendmail on Linux.
2. Envoyer Copier le lien
sendmail recipient@example.com < email.txt
3. Vérifier Copier le lien
mail
Envoyer une pièce jointe avec sendmail Copier le lien
sendmail ne gère pas les pièces jointes nativement ; utilisez uuencode :
Installer sharutils :
sudo apt install sharutils
Exemple :
( echo "Subject: Email with attachment"; uuencode file.txt file.txt ) | sendmail recipient@example.com
Vérifier :
mail
Présentation de mailx Copier le lien
mailx est un outil simple et efficace pour gérer les e-mails en terminal. Il fait partie du paquet mailutils.
Installer mailx Copier le lien
Debian/Ubuntu Copier le lien
sudo apt install mailutils
Red Hat Copier le lien
sudo yum install mailx
Envoyer un e-mail avec mailx Copier le lien
echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com
Envoyer une pièce jointe avec mailx Copier le lien
echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com
Conclusion Copier le lien
Envoyer des e-mails depuis la ligne de commande sous Linux est une méthode puissante pour automatiser des tâches de communication, diagnostiquer des serveurs ou tester des configurations. Avec sendmail et mailx, vous pouvez gérer aussi bien des messages simples que des envois avancés avec pièces jointes. Ce guide fournit toutes les instructions nécessaires pour commencer efficacement.